package com.zbkj.crmeb.chant.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zbkj.crmeb.enums.CurrencyEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 渠道商户表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("eb_channel_merchant")
@ApiModel(value = "ChannelMerchant对象", description = "渠道商户表")
public class ChannelMerchantVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "渠道id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "渠道类型")
    private Integer channelType;

    @ApiModelProperty(value = "服务商id")
    private Integer agentId;

    @ApiModelProperty(value = "归属类型 (0:平台 1：一级  2：二级)")
    private Integer agentLevel;

    @ApiModelProperty(value = "服务商名称")
    private String agentName;
    
    @ApiModelProperty(value = "平台加价率")
    private BigDecimal markupRate;

    @ApiModelProperty(value = "渠道名称")
    private String channelName;

    @ApiModelProperty(value = "联系人")
    private String contactPerson;

    @ApiModelProperty(value = "联系电话区号")
    private String areaCode;

    @ApiModelProperty(value = "联系电话")
    private String contactPhone;

    @ApiModelProperty(value = "可见品牌")
    private String brandIds;

    @ApiModelProperty(value = "可见供应商")
    private String suppliersIds;

    @ApiModelProperty(value = "供应商编号")
    private String suppliersNameCode;

    @ApiModelProperty(value = "供应商类型")
    private String suppliersTypeName;

    @ApiModelProperty(value = "供应商类型")
    private Integer suppliersType;

    @ApiModelProperty(value = "商户号")
    private String merchantNo;
    
    @ApiModelProperty(value = "商户秘钥")
    private String merchantSecret;

    @ApiModelProperty(value = "运费模板id(1:大陆 2:港澳 3:意大利)")
    private String tempId;
    
    @ApiModelProperty(value = "收件详细地址,省+市+区+门牌号相加成完整地址")
    @NotBlank(message = "收货详细地址不能为空")
    private String detail;

    @ApiModelProperty(value = "收件人姓名")
    private String consigneeName;

    @ApiModelProperty(value = "收件人号码")
    private String consigneePhone;

    @ApiModelProperty(value = "商户回调地址")
    private String backUrl;
    
    @ApiModelProperty(value = "物流介绍图")
    private String logisticsImage;

    @ApiModelProperty(value = "店铺介绍图")
    private String storeImage;
    
    @ApiModelProperty(value = "邮箱")
    private String email;
    
    @ApiModelProperty(value = "所属国家")
    private String country;
    
    @ApiModelProperty(value = "币种")
    private CurrencyEnum currency;
    
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "是否删除")
    private Boolean isDel;
    
    @ApiModelProperty(value = "账户冻结状态, 1为冻结 0 为正常")
    private Boolean status;
    
    @ApiModelProperty(value = "账户金额")
    private BigDecimal account;
    
    @ApiModelProperty(value = "账户类型 0: 月结 1: 预充值")
    private Integer accountType;
    
    @ApiModelProperty(value = "可提现金额")
    private BigDecimal withdrawAccount;
    
    @ApiModelProperty(value = "冻结金额")
    private BigDecimal freezeAccount;
    
    @ApiModelProperty(value = "累计交易金额")
    private BigDecimal totalMoney;
    
    @ApiModelProperty(value = "累计已结算金额")
    private BigDecimal closeMoney;
    
    @ApiModelProperty(value = "账户预警金额")
    private BigDecimal warnMoney;
    
    @ApiModelProperty(value = "收款账户名")
    private String bankName;
    
    @ApiModelProperty(value = "收款账户号")
    private String bankNo;
    
    @ApiModelProperty(value = "开户行")
    private String createBank;

    @ApiModelProperty(value = "是否自动上架（0否  1是）")
    private Integer automaticShelves;

    @ApiModelProperty(value = "是否开启积分抵扣（0否  1是）")
    private Integer enableIntegral;

    @ApiModelProperty(value = "销售类型 0-2b 1-2c")
    private Integer appletType;

    @ApiModelProperty(value = "是否自提（0否  1是）")
    private Integer isTake;

    @ApiModelProperty(value = "是否显示折扣(0:否，1：是，默认：1)")
    private Integer showDiscount;

    @ApiModelProperty(value = "首页配置")
    private String indexConfig;

    @ApiModelProperty(value = "多供应商详情")
    private String productDetailConfig;

    @ApiModelProperty(value = "是否显示供应商(0:否，1：是,2仅关联供应商)")
    private Integer showSupplier;

    @ApiModelProperty(value = "展示供应商")
    private String showSuppliersIds;

    @ApiModelProperty(value = "是否二手（0否 1是）")
    private Integer secondHand;

    @ApiModelProperty(value = "自建订单是否自动确认（0否  1是）")
    private Integer autoConfirm;

    @ApiModelProperty(value = "云仓订单是否自动推送（0否  1是）")
    private Integer autoPush;

    @ApiModelProperty(value = "供应商自动推送关联商户（没有为null；多个,隔开）")
    private String confirmIds;

    @ApiModelProperty(value = "供应商包邮关联商户（没有为null；多个,隔开）")
    private String freeIds;

    @ApiModelProperty(value = "供应商加价率关联商户（没有为null；多个,隔开）")
    private String rateIds;

    @ApiModelProperty(value = "供应商关联商户额外加价率")
    private BigDecimal extraRate;

    @ApiModelProperty(value = "是否展示商户会员折扣商品搜索false不展示,true展示")
    private Boolean showMemberDiscount;

    @ApiModelProperty(value = "开启批采功能（0否  1是）")
    private Integer batchPicking;

    @ApiModelProperty(value = "是否展示自建转云仓false不展示,true展示")
    private Boolean showSelfBuilt;
    
    @ApiModelProperty(value = "是否可推送拼多多")
    private Integer pushPdd;

    @ApiModelProperty(value = "到期时间")
    private Date expirationTime;

    @ApiModelProperty(value = "子账号人数")
    private Integer subAccountNumber;

    @ApiModelProperty(value = "是否自建 1: 是 0:否")
    private Integer isEurope;

    @ApiModelProperty(value = "支付方式,仅回显")
    private Integer payType;

    @ApiModelProperty(value = "直邮类型1直邮大陆2直邮香港")
    private Integer directMailType;

    @ApiModelProperty("产品类型")
    private Integer productType;

    @ApiModelProperty("备注")
    private String remarks;
}
